// 每个节点都有 nodeType 属性, 表示该节点的类型
// nodeName 和 nodeValue 保存有关节点的信息

childNodes() // 元素的子节点 
parentNode() // 元素的父节点

// 每个节点都有一个 parentNode 属性,指向其 DOM 树中的父元素
// childNode 中的所有节点都有同一个父元素

previousSibling()  //上一个兄弟节点
nextSibling()  //下一个兄弟节点
// childNodes 中的所有节点都是同一列表中其他节点的兄弟节点,而使用 previousSibling 和 nextSibling 可以在这个列 表的节点间导航(上下)。这个列表中第一个节点的 previousSibling 属性是 null，后一个节点的 nextSibling 属性也是 null

firstChild() // 指向 childNodes 中的第一个节点
lastChild() // 指向 childNodes 中的最后一个节点 

hasChildNodes() // (boolean  是否有子节点)这个方法如果返回 true 则说明节点有一个或多个子节点

appendChild() // 用于在 childNodes 列表末尾添加节点  返回 新添加的节点
//  如果把文档中已经存在的节点传给 appendChild()，则这个节点会从之前的位置被转移到新位置。

insertBefore() // 这个方法接收两个参数：要插入的节点和参照节点。调用这个方法后，要插入的节点会变成参照节点的 前一个同胞节点，并被返回

replaceChild() // 这个方法用指定的节点替换当前节点的一个子节点，并返回被替换掉的节 (如果该节点已经存在于 DOM 树中，则它首先会被从原始位置删除)

removeChild() // 删除这个节点, 并返回


cloneNode() //会返回与调用它的节点一模一样的节 点。cloneNode()方法接收一个布尔值参数，表示是否深复制。在传入 true 参数时，会进行深复制， 即复制节点及其整个子 DOM树。如果传入 false，则只会复制调用该方法的节点。复制返回的节点属 于文档所有，但尚未指定父节点，所以可称为孤儿节点（orphan）。可以通过 appendChild()、 insertBefore()或 replaceChild()方法把孤儿节点添加到文档中。

document.title // 文档标题

document.URL // 当前页面的完整 URL

document.domain // 页面的域名

document.referrer //  页面的来源

document.getElementById() // 获取 id 相同

document.getElementsByTagName() // 获取节点类型

document.getElementsByClassName() // 获取类名相同

document.title()

document.write()

document.writeln()   // 多加了一个换行 
/* 
注意： 不要输出 script 标签 如果一定要输出则用字符串拼接的方式，能笔描</script>匹配最外面的标签的问题

如果在页面加载完之后再调用 document.write() 输出的内容会重写整个页面

例： 在 window.onload 后使用 document.write('我现在的内容会重写整个页面')
*/

window.onload()



